html,
body {
    width: 100%;
    min-height: 100vh;
    background-color: #f3f3f3;
}

* {
    margin: 0;
    padding: 0;
}

.container {
    width: 100%;
    box-sizing: border-box;
    min-height: 100vh;
    max-width: 750px;
    margin: auto;
}

.top-wall {
    width: 100%;
    height: 8px;
}

.top-wall .wall,
.hall-wall .wall {
    height: 100%;
    background-color: #dddddd;
}

.top-wall .wall-left {
    float: left;
    width: 30%;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.top-wall .wall-right {
    float: right;
    width: 60%;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.bottom-wall {
    width: 100%;
    height: 8px;
    background-color: #dddddd;
}

.hall {
    width: 100%;
    box-sizing: border-box;
    border-left: 8px solid #dddddd;
    border-right: 8px solid #dddddd;
    padding: 8%;
    position: relative;
    padding-bottom: 4em;
}

.hall .box {
    font-size: 10px;
}

.hall .name {
    bottom: 1em;
}

.hall-wall {
    width: 100%;
    height: 8px;
}

.hall-wall .left {
    float: left;
    width: 60%;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.hall-wall .right {
    float: right;
    width: 30%;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.hall .exhibition {}

.hall .exhibition .row {
    margin-top: 3em;
    display: flex;
    justify-content: space-between;
}

.hall .row:first-child {
    margin-top: 0;
}

.hall .exhibition .row .col {
    display: inline-block;
    width: 45%;
    vertical-align: top;
    color: white;
    text-align: center;
}

.row-1 .box {
    width: 100%;
    height: 0;
    padding-top: 135%;
    position: relative;
}

.row-1 .wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
}

.row-1 .wrapper span {
    display: block;
    width: 100%;
    text-align: center;
}

.row-1 .left .box {
    background-color: rgb(198, 0, 0);
}

.row-1 .right .box {
    background-color: rgb(253, 127, 216);
}

.row-2 .left .box {
    background-color: rgb(139, 139, 139);
    height: 14vw;
    line-height: 14vw;
}

.row-2 .right .box {
    background-color: rgb(139, 139, 139);
    height: 14vw;
    line-height: 14vw;
}

.row-3 .box,
.row-3-1 .box {
    display: flex;
    justify-content: space-between;
    height: 100%;
}

.row-3-1 .box>div:not(.empty),
.row-3 .box>div:not(.empty) {
    border-top: 1px solid #666666;
    border-left: 1px solid #666666;
    width: 20%;
    background-color: rgb(10, 139, 241);
}

div.empty {
    width: 20%;
}

.row-3-1 .box>div:last-child:not(.empty),
.row-3 .box>div:last-child:not(.empty) {
    border-right: 1px solid #666666;
}

.hall .exhibition .row.row-3-1 {
    margin-top: 0;
}

.row-4 .left .box {
    background-color: rgb(10, 139, 241);
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.row-4 .right .box td:not(.empty),
.row-5 .right .box td:not(.empty) {
    background-color: rgb(10, 139, 241);
    height: 3em;
    width: 20%;
    border: 0;
}

.row-5 .box .wrapper .home {
    background-color: rgb(10, 139, 241);
    width: 40%;
    min-width: 5em;
    height: 9em;
    box-sizing: border-box;
    display: flex;
    align-items: center;
}

.row-5 .left .box .wrapper {
    display: flex;
    justify-content: right;
}

.row-5 .box .wrapper span {
    text-align: center;
    display: block;
    width: 100%;
}

.box table {
    width: 100%;
    border-collapse: collapse;
}

.box table td:not(.empty) {
    height: 3em;
    border: 1px solid #666666;
    width: 20%;
}

.courtyard {
    width: 100%;
    box-sizing: border-box;
    border: 8px solid #dddddd;
    border-top: 0;
    padding: 8%;
    position: relative;
}


.courtyard .topic-group {
    background-color: rgb(249, 123, 54);
    color: white;
    text-align: center;
    width: 40%;
    padding: 1em 0;
    font-size: 1.2em;
}

.courtyard .topic-group .topic-item {
    height: 2em;
}

.courtyard .name {
    top: 1em;
}

.name {
    position: absolute;
    border: 1px solid #0080cb;
    color: #0080cb;
    border-radius: 5px;
    right: 2em;
    width: 5em;
    text-align: center;
    padding: 6px;
}

.logo {
    max-width: 40%;
    position: absolute;
    top: 40%;
    right: 2em;
}

.courtyard .gate {
    position: absolute;
    right: 0;
    width: 2em;
    height: 4em;
    top: 50%;
    margin-top: -2em;
}

.courtyard .gate .door.right {
    position: absolute;
    top: 0;
    right: 0;
    display: block;
    width: 100%;
    height: 2em;
    box-sizing: border-box;
    border: 1px solid black;
    border-bottom-left-radius: 2em;
}

.courtyard .gate .door.left {
    position: absolute;
    display: block;
    width: 100%;
    height: 2em;
    box-sizing: border-box;
    border: 1px solid black;
    border-top-left-radius: 2em;
    bottom: 0;
    right: 0;
}

.gate .gate-name {
    width: 1.5em;
    line-height: 1.2em;
    display: block;
    top: 0.5em;
    left: 0.5em;
    position: absolute;
}

.office {
    text-align: right;
    padding-top: 25px;
}

.office .room {
    width: 1.5em;
    padding: 1em 0.5em;
    background-color: rgb(200, 200, 50);
    display: inline-block;
    text-align: center;
    color: white;
}

.dialog {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
}

.dialog .mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.3);
    z-index: 0;
}

.dialog .dialog-body {
    width: 84%;
    max-width: 750px;
    margin: auto;
    margin-top: 2em;
    background-color: #ffffff;
    border-radius: 5px;
    z-index: 1;
    position: relative;
}

.dialog .dialog-header {
    padding: 1em;
    border-bottom: 1px solid #dddddd;
    position: relative;
}

.dialog .dialog-footer {
    padding: 1em;
    border-top: 1px solid #dddddd;
    text-align: center;
}

.dialog .text {
    line-height: 1.8em;
    text-indent: 2em;
    color: #333333;
    padding: 1em;
    max-height: 60vh;
    overflow-y: scroll;
}

.dialog .activity {
    text-align: right;
    color: #333333;
}

.dialog .activity div {
    display: inline-block;
    margin-right: 1em;
    margin-top: 10px;
}

.dialog .close {
    width: 1.2em;
    height: 1.2em;
    line-height: 1.2em;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.2);
    text-align: center;
    position: absolute;
    right: 1em;
    display: inline-block;
    cursor: pointer;
}

.dialog .btn {
    padding: 0.3em 1.5em;
    cursor: pointer;
    border-radius: 5px;
}

.dialog .btn:hover {
    opacity: 0.8;
}

.dialog .btn.btn-success {
    background-color: rgb(10, 139, 241);
    color: white;
    border: 1px solid rgb(10, 139, 241);
}
